home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / graphics / mma2ltx / texmma22.pro < prev   
Text File  |  1994-07-03  |  12KB  |  174 lines

  1. %!
  2. /Mathdict 150 dict def Mathdict begin /Mlmarg 0 def /Mrmarg 0 def
  3. /Mbmarg 0 def /Mtmarg 0 def /Mtransform{}bind def /Mfixwid true def
  4. /Mfixdash false def /Mrot 0 def /Mpstart{MathPictureStart}bind def
  5. /Mpend{MathPictureEnd}bind def /Mscale{0 1 0 1 5 -1 roll MathScale}bind
  6. def /ISOLatin1Encoding dup where{pop pop}{[/.notdef /.notdef /.notdef
  7. /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
  8. /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
  9. /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
  10. /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl
  11. /numbersign /dollar /percent /ampersand /quoteright /parenleft
  12. /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two
  13. /three /four /five /six /seven /eight /nine /colon /semicolon /less
  14. /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N
  15. /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash
  16. /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g
  17. /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar
  18. /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef
  19. /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
  20. /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex
  21. /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla
  22. /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling
  23. /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine
  24. /guillemotleft /logicalnot /hyphen /registered /macron /degree
  25. /plusminus /twosuperior /threesuperior /acute /mu /paragraph
  26. /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
  27. /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute
  28. /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute
  29. /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth
  30. /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
  31. /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn
  32. /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae
  33. /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute
  34. /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex
  35. /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex
  36. /udieresis /yacute /thorn /ydieresis]def}ifelse /MFontDict 50 dict def
  37. /MStrCat{exch dup length 2 index length add string dup 3 1 roll copy
  38. length exch dup 4 2 roll exch putinterval}def /MCreateEncoding{1 index
  39. 255 string cvs(-)MStrCat 1 index MStrCat cvn exch(Encoding)MStrCat cvn
  40. dup where{exch get}{pop StandardEncoding}ifelse 3 1 roll dup MFontDict
  41. exch known not{1 index findfont dup length dict begin{1 index /FID ne{
  42. def}{pop pop}ifelse}forall /Encoding 3 index def currentdict end 1 index
  43. exch definefont pop MFontDict 1 index null put}if exch pop exch pop}def
  44. /ISOLatin1{(ISOLatin1)MCreateEncoding}def /ISO8859{(ISOLatin1)
  45. MCreateEncoding}def /Mcopyfont{dup maxlength dict exch{1 index /FID eq{
  46. pop pop}{2 index 3 1 roll put}ifelse}forall}def /Plain /Courier findfont
  47. Mcopyfont definefont pop /Bold /Courier-Bold findfont Mcopyfont
  48. definefont pop /Italic /Courier-Oblique findfont Mcopyfont definefont
  49. pop /MathPictureStart{gsave Mtransform Mlmarg Mbmarg translate Mwidth
  50. Mlmarg Mrmarg add sub /Mwidth exch def Mheight Mbmarg Mtmarg add sub
  51. /Mheight exch def /Mtmatrix matrix currentmatrix def /Mgmatrix matrix
  52. currentmatrix def}bind def /MathPictureEnd{grestore}bind def /MFill{0 0
  53. moveto Mwidth 0 lineto Mwidth Mheight lineto 0 Mheight lineto fill}bind
  54. def /MPlotRegion{3 index Mwidth mul 2 index Mheight mul translate exch
  55. sub Mheight mul /Mheight exch def exch sub Mwidth mul /Mwidth exch def}
  56. bind def /MathSubStart{Momatrix Mgmatrix Mtmatrix Mwidth Mheight 7 -2
  57. roll moveto Mtmatrix setmatrix currentpoint Mgmatrix setmatrix 9 -2 roll
  58. moveto Mtmatrix setmatrix currentpoint 2 copy translate /Mtmatrix matrix
  59. currentmatrix def 3 -1 roll exch sub /Mheight exch def sub /Mwidth exch
  60. def}bind def /MathSubEnd{/Mheight exch def /Mwidth exch def /Mtmatrix
  61. exch def dup setmatrix /Mgmatrix exch def /Momatrix exch def}bind def
  62. /Mdot{moveto 0 0 rlineto stroke}bind def /Mtetra{moveto lineto lineto
  63. lineto fill}bind def /Metetra{moveto lineto lineto lineto closepath
  64. gsave fill grestore 0 setgray stroke}bind def /Mistroke{flattenpath 0 0
  65. 0{4 2 roll pop pop}{4 -1 roll 2 index sub dup mul 4 -1 roll 2 index sub
  66. dup mul add sqrt 4 -1 roll add 3 1 roll}{stop}{stop}pathforall pop pop
  67. currentpoint stroke moveto currentdash 3 -1 roll add setdash}bind def
  68. /Mfstroke{stroke currentdash pop 0 setdash}bind def /Mrotsboxa{gsave dup
  69. /Mrot exch def Mrotcheck Mtmatrix dup setmatrix 7 1 roll 4 index 4 index
  70. translate rotate 3 index -1 mul 3 index -1 mul translate /Mtmatrix
  71. matrix currentmatrix def grestore Msboxa 3 -1 roll /Mtmatrix exch def
  72. /Mrot 0 def}bind def /Msboxa{newpath 5 -1 roll Mvboxa pop Mboxout 6 -1
  73. roll 5 -1 roll 4 -1 roll Msboxa1 5 -3 roll Msboxa1 Mboxrot[7 -2 roll 2
  74. copy[3 1 roll 10 -1 roll 9 -1 roll]6 1 roll 5 -2 roll]}bind def /Msboxa1
  75. {sub 2 div dup 2 index 1 add mul 3 -1 roll -1 add 3 -1 roll mul}bind def
  76. /Mvboxa{Mfixwid{Mvboxa1}{dup Mwidthcal 0 exch{add}forall exch Mvboxa1 4
  77. index 7 -1 roll add 4 -1 roll pop 3 1 roll}ifelse}bind def /Mvboxa1{
  78. gsave newpath[true 3 -1 roll{Mbbox 5 -1 roll{0 5 1 roll}{7 -1 roll exch
  79. sub(m)stringwidth pop .3 mul sub 7 1 roll 6 -1 roll 4 -1 roll Mmin 3 -1
  80. roll 5 index add 5 -1 roll 4 -1 roll Mmax 4 -1 roll}ifelse false}forall{
  81. stop}if counttomark 1 add 4 roll]grestore}bind def /Mbbox{1 dict begin 0
  82. 0 moveto /temp(T)def{gsave currentpoint newpath moveto temp 0 3 -1 roll
  83. put temp false charpath flattenpath currentpoint pathbbox grestore
  84. moveto lineto moveto}forall pathbbox newpath end}bind def /Mmin{2 copy
  85. gt{exch}if pop}bind def /Mmax{2 copy lt{exch}if pop}bind def /Mrotshowa{
  86. dup /Mrot exch def Mrotcheck Mtmatrix dup setmatrix 7 1 roll 4 index 4
  87. index translate rotate 3 index -1 mul 3 index -1 mul translate /Mtmatrix
  88. matrix currentmatrix def Mgmatrix setmatrix Mshowa /Mtmatrix exch def
  89. /Mrot 0 def}bind def /Mshowa{4 -2 roll moveto 2 index Mtmatrix setmatrix
  90. Mvboxa 7 1 roll Mboxout 6 -1 roll 5 -1 roll 4 -1 roll Mshowa1 4 1 roll
  91. Mshowa1 rmoveto currentpoint Mfixwid{Mshowax}{Mshoway}ifelse pop pop pop
  92. pop Mgmatrix setmatrix}bind def /Mshowax{0 1 4 index length -1 add{2
  93. index 4 index 2 index get 3 index add moveto 4 index exch get Mfixdash{
  94. Mfixdashp}if show}for}bind def /Mfixdashp{dup length 1 gt 1 index true
  95. exch{45 eq and}forall and{gsave(--)stringwidth pop(-)stringwidth pop sub
  96. 2 div 0 rmoveto dup length 1 sub{(-)show}repeat grestore}if}bind def
  97. /Mshoway{3 index Mwidthcal 5 1 roll 0 1 4 index length -1 add{2 index 4
  98. index 2 index get 3 index add moveto 4 index exch get[6 index aload
  99. length 2 add -1 roll{pop Strform stringwidth pop neg exch add 0 rmoveto}
  100. exch kshow cleartomark}for pop}bind def /Mwidthcal{[exch{Mwidthcal1}
  101. forall][exch dup Maxlen -1 add 0 1 3 -1 roll{[exch 2 index{1 index Mget
  102. exch}forall pop Maxget exch}for pop]Mreva}bind def /Mreva{[exch aload
  103. length -1 1{1 roll}for]}bind def /Mget{1 index length -1 add 1 index ge{
  104. get}{pop pop 0}ifelse}bind def /Maxlen{[exch{length}forall Maxget}bind
  105. def /Maxget{counttomark -1 add 1 1 3 -1 roll{pop Mmax}for exch pop}bind
  106. def /Mwidthcal1{[exch{Strform stringwidth pop}forall]}bind def /Strform{
  107. /tem(x)def tem 0 3 -1 roll put tem}bind def /Mshowa1{2 copy add 4 1 roll
  108. sub mul sub -2 div}bind def /MathScale{Mwidth Mheight Mlp translate
  109. scale /yscale exch def /ybias exch def /xscale exch def /xbias exch def
  110. /Momatrix xscale yscale matrix scale xbias ybias matrix translate matrix
  111. concatmatrix def /Mgmatrix matrix currentmatrix def}bind def /Mlp{3 copy
  112. Mlpfirst{Mnodistort{Mmin dup}if 4 index 2 index 2 index Mlprun 11 index
  113. 11 -1 roll 10 -4 roll Mlp1 8 index 9 -5 roll Mlp1 4 -1 roll and{exit}if
  114. 3 -1 roll pop pop}loop exch 3 1 roll 7 -3 roll pop pop pop}bind def
  115. /Mlpfirst{3 -1 roll dup length 2 copy -2 add get aload pop pop pop 4 -2
  116. roll -1 add get aload pop pop pop 6 -1 roll 3 -1 roll 5 -1 roll sub div
  117. 4 1 roll exch sub div}bind def /Mlprun{2 copy 4 index 0 get dup 4 1 roll
  118. Mlprun1 3 copy 8 -2 roll 9 -1 roll{3 copy Mlprun1 3 copy 11 -3 roll /gt
  119. Mlpminmax 8 3 roll 11 -3 roll /lt Mlpminmax 8 3 roll}forall pop pop pop
  120. pop 3 1 roll pop pop aload pop 5 -1 roll aload pop exch 6 -1 roll
  121. Mlprun2 8 2 roll 4 -1 roll Mlprun2 6 2 roll 3 -1 roll Mlprun2 4 2 roll
  122. exch Mlprun2 6 2 roll}bind def /Mlprun1{aload pop exch 6 -1 roll 5 -1
  123. roll mul add 4 -2 roll mul 3 -1 roll add}bind def /Mlprun2{2 copy add 2
  124. div 3 1 roll exch sub}bind def /Mlpminmax{cvx 2 index 6 index 2 index
  125. exec{7 -3 roll 4 -1 roll}if 1 index 5 index 3 -1 roll exec{4 1 roll pop
  126. 5 -1 roll aload pop pop 4 -1 roll aload pop[8 -2 roll pop 5 -2 roll pop
  127. 6 -2 roll pop 5 -1 roll]4 1 roll pop}{pop pop pop}ifelse}bind def /Mlp1{
  128. 5 index 3 index sub 5 index 2 index mul 1 index le 1 index 0 le or dup
  129. not{1 index 3 index div .99999 mul 8 -1 roll pop 7 1 roll}if 8 -1 roll 2
  130. div 7 -2 roll pop sub 5 index 6 -3 roll pop pop mul sub exch}bind def
  131. /intop 0 def /inrht 0 def /inflag 0 def /outflag 0 def /xadrht 0 def
  132. /xadlft 0 def /yadtop 0 def /yadbot 0 def /Minner{outflag 1 eq{/outflag
  133. 0 def /intop 0 def /inrht 0 def}if 5 index gsave Mtmatrix setmatrix
  134. Mvboxa pop grestore 3 -1 roll pop dup intop gt{/intop exch def}{pop}
  135. ifelse dup inrht gt{/inrht exch def}{pop}ifelse pop /inflag 1 def}bind
  136. def /Mouter{/xadrht 0 def /xadlft 0 def /yadtop 0 def /yadbot 0 def
  137. inflag 1 eq{dup 0 lt{dup intop mul neg /yadtop exch def}if dup 0 gt{dup
  138. intop mul /yadbot exch def}if pop dup 0 lt{dup inrht mul neg /xadrht
  139. exch def}if dup 0 gt{dup inrht mul /xadlft exch def}if pop /outflag 1
  140. def}{pop pop}ifelse /inflag 0 def /inrht 0 def /intop 0 def}bind def
  141. /Mboxout{outflag 1 eq{4 -1 roll xadlft leadjust add sub 4 1 roll 3 -1
  142. roll yadbot leadjust add sub 3 1 roll exch xadrht leadjust add add exch
  143. yadtop leadjust add add /outflag 0 def /xadlft 0 def /yadbot 0 def
  144. /xadrht 0 def /yadtop 0 def}if}bind def /leadjust{(m)stringwidth pop .5
  145. mul}bind def /Mrotcheck{dup 90 eq{yadbot /yadbot xadrht def /xadrht
  146. yadtop def /yadtop xadlft def /xadlft exch def}if dup cos 1 index sin
  147. Checkaux dup cos 1 index sin neg exch Checkaux 3 1 roll pop pop}bind def
  148. /Checkaux{4 index exch 4 index mul 3 1 roll mul add 4 1 roll}bind def
  149. /Mboxrot{Mrot 90 eq{brotaux 4 2 roll}if Mrot 180 eq{4 2 roll brotaux 4 2
  150. roll brotaux}if Mrot 270 eq{4 2 roll brotaux}if}bind def /brotaux{neg
  151. exch neg}bind def /Mabsproc{0 matrix defaultmatrix dtransform
  152. idtransform dup mul exch dup mul add sqrt}bind def /Mabswid{Mabsproc
  153. setlinewidth}bind def /Mabsdash{exch[exch{Mabsproc}forall]exch setdash}
  154. bind def /MBeginOrig{Momatrix concat}bind def /MEndOrig{Mgmatrix
  155. setmatrix}bind def /sampledsound where{pop}{/sampledsound{exch pop exch
  156. 5 1 roll mul 4 idiv mul 2 idiv exch pop exch /Mtempproc exch def{
  157. Mtempproc pop}repeat}bind def}ifelse /g{setgray}bind def /k{
  158. setcmykcolor}bind def /m{moveto}bind def /p{gsave}bind def /r{
  159. setrgbcolor}bind def /w{setlinewidth}bind def /C{curveto}bind def /F{
  160. fill}bind def /L{lineto}bind def /P{grestore}bind def /s{stroke}bind def
  161. /setcmykcolor where{pop}{/setcmykcolor{4 1 roll[4 1 roll]{1 index sub 1
  162. sub neg dup 0 lt{pop 0}if dup 1 gt{pop 1}if exch}forall pop setrgbcolor}
  163. bind def}ifelse /Mcharproc{currentfile(x)readhexstring pop 0 get exch
  164. div}bind def /Mshadeproc{dup 3 1 roll{dup Mcharproc 3 1 roll}repeat 1 eq
  165. {setgray}{3 eq{setrgbcolor}{setcmykcolor}ifelse}ifelse}bind def
  166. /Mrectproc{3 index 2 index moveto 2 index 3 -1 roll lineto dup 3 1 roll
  167. lineto lineto fill}bind def /Mcolorimage{7 1 roll pop pop matrix
  168. invertmatrix concat 2 exch exp 1 sub 3 1 roll 1 1 2 index{1 1 4 index{
  169. dup 1 sub exch 2 index dup 1 sub exch 7 index 9 index Mshadeproc
  170. Mrectproc}for pop}for pop pop pop pop}bind def /Mimage{pop matrix
  171. invertmatrix concat 2 exch exp 1 sub 3 1 roll 1 1 2 index{1 1 4 index{
  172. dup 1 sub exch 2 index dup 1 sub exch 7 index Mcharproc setgray
  173. Mrectproc}for pop}for pop pop pop}bind def end
  174.